home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d17 / pgraf110.arc / PGRAPH.H < prev    next >
Text File  |  1991-06-21  |  9KB  |  249 lines

  1. /*    pgraph.h
  2.  
  3.     Printer Graphics Package.
  4.  
  5.     Copyright (c) F van der Hulst 1991
  6.     All Rights Reserved.
  7.  
  8.      Revisions:
  9.      27 March 1991: Initial release (Turbo C v2.0 Large model only)
  10.      13 April 1991: Ported to MicroSoft C v5.1
  11.      16 June  1991: Support for all memory models
  12. */
  13.  
  14. #if __STDC__
  15. #define _Cdecl
  16. #else
  17. #define _Cdecl    cdecl
  18. #endif
  19.  
  20. #if     !defined(__P_GRAPHX_DEF_)
  21. #define __P_GRAPHX_DEF_
  22.  
  23. #if     !defined(__GRAPHX_DEF_)
  24. enum graphics_errors {        /* graphresult error return codes */
  25.     grOk           =   0,
  26.     grNoInitGraph       =  -1,
  27.     grNotDetected       =  -2,
  28.     grFileNotFound       =  -3,
  29.     grInvalidDriver    =  -4,
  30.     grNoLoadMem       =  -5,
  31.     grNoScanMem       =  -6,
  32.     grNoFloodMem       =  -7,
  33.     grFontNotFound       =  -8,
  34.     grNoFontMem       =  -9,
  35.     grInvalidMode       = -10,
  36.     grError        = -11,   /* generic error */
  37.     grIOerror       = -12,
  38.     grInvalidFont       = -13,
  39.     grInvalidFontNum   = -14,
  40.     grInvalidVersion   = -18
  41. };
  42.  
  43. enum line_styles {        /* Line styles for get/setlinestyle */
  44.     SOLID_LINE   = 0,
  45.     DOTTED_LINE  = 1,
  46.     CENTER_LINE  = 2,
  47.     DASHED_LINE  = 3,
  48.     USERBIT_LINE = 4,    /* User defined line style */
  49. };
  50.  
  51. enum line_widths {        /* Line widths for get/setlinestyle */
  52.     NORM_WIDTH  = 1,
  53.     THICK_WIDTH = 3,
  54. };
  55.  
  56. enum font_names {
  57.     DEFAULT_FONT    = 0,    /* 8x8 bit mapped font */
  58.     TRIPLEX_FONT    = 1,    /* "Stroked" fonts */
  59.     SMALL_FONT    = 2,
  60.     SANS_SERIF_FONT = 3,
  61.     GOTHIC_FONT    = 4,
  62.     SCRIPT_FONT  = 5,
  63.     SIMPLEX_FONT = 6,
  64.     TRI_SCR_FONT = 7,
  65.     COMPLEX_FONT = 8,
  66.     EURO_FONT    = 9,
  67.     BOLD_FONT    = 10
  68. };
  69.  
  70. #define HORIZ_DIR    0    /* left to right */
  71. #define VERT_DIR    1    /* bottom to top */
  72.  
  73. #define USER_CHAR_SIZE    0    /* user-defined char size */
  74.  
  75. enum fill_patterns {        /* Fill patterns for get/setfillstyle */
  76.     EMPTY_FILL,        /* fills area in background color */
  77.     SOLID_FILL,        /* fills area in solid fill color */
  78.     LINE_FILL,        /* --- fill */
  79.     LTSLASH_FILL,        /* /// fill */
  80.     SLASH_FILL,        /* /// fill with thick lines */
  81.     BKSLASH_FILL,        /* \\\ fill with thick lines */
  82.     LTBKSLASH_FILL,     /* \\\ fill */
  83.     HATCH_FILL,        /* light hatch fill */
  84.     XHATCH_FILL,        /* heavy cross hatch fill */
  85.     INTERLEAVE_FILL,    /* interleaving line fill */
  86.     WIDE_DOT_FILL,        /* Widely spaced dot fill */
  87.     CLOSE_DOT_FILL,     /* Closely spaced dot fill */
  88.     USER_FILL        /* user defined fill */
  89. };
  90.  
  91. enum putimage_ops {        /* BitBlt operators for putimage */
  92.     COPY_PUT,        /* MOV */
  93.     XOR_PUT,        /* XOR */
  94.     OR_PUT,         /* OR  */
  95.     AND_PUT,        /* AND */
  96.     NOT_PUT         /* NOT */
  97. };
  98.  
  99. enum text_just {        /* Horizontal and vertical justification
  100.                    for settextjustify */
  101.     LEFT_TEXT    = 0,
  102.     CENTER_TEXT    = 1,
  103.     RIGHT_TEXT    = 2,
  104.  
  105.     BOTTOM_TEXT    = 0,
  106.      /* CENTER_TEXT    = 1,  already defined above */
  107.     TOP_TEXT    = 2
  108. };
  109.  
  110.  
  111. struct linesettingstype {
  112.     int linestyle;
  113.     unsigned upattern;
  114.     int thickness;
  115. };
  116.  
  117. struct textsettingstype {
  118.     int font;
  119.     int direction;
  120.     int charsize;
  121.     int horiz;
  122.     int vert;
  123. };
  124.  
  125. struct fillsettingstype {
  126.     int pattern;
  127.     int color;
  128. };
  129.  
  130. struct pointtype {
  131.     int x, y;
  132. };
  133.  
  134. struct viewporttype {
  135.     int left, top, right, bottom;
  136.     int clip;
  137. };
  138.  
  139. struct arccoordstype {
  140.     int x, y;
  141.     int xstart, ystart, xend, yend;
  142. };
  143. #endif
  144.  
  145. enum p_graphics_drivers {     /* define graphics drivers */
  146.     STAR = 1,
  147.     LASERJET,
  148.     LX400,
  149.     USER1,
  150.     USER2,
  151. };
  152.  
  153. enum p_graphics_modes {        /* graphics modes for each driver */
  154.      STAR_60_72     = 0,  /* Star NX-10   60 dpi *  72 dpi Normal       */
  155.      STAR_120_216,            /*             120     * 216     Double       */
  156.      STAR_120_108,            /*             120     * 108     Double       */
  157.      STAR_120_72,            /*             120     *  72     Double, fast */
  158.      STAR_240_216,            /*             240     * 216     Quad         */
  159.      STAR_80_72,            /*              80     *  72     CRT graphics */
  160.      STAR_72_72,            /*              72     *  72     Plotter      */
  161.      STAR_90_72,            /*              90     *  72     CRT II            */
  162.      LJ_75_75         = 0,  /* HP LaserJet  75 dpi *  75 dpi */
  163.      LJ_100_100,            /*                   100     * 100      */
  164.      LJ_150_150,            /*                   150     * 150      */
  165.      LJ_300_300,            /*                    300     * 300      */
  166.      LX400_60_72     = 0,  /* Epson LX-400 60 dpi *  72 dpi Normal       */
  167.      LX400_120_216,        /*             120     * 216     Double       */
  168.      LX400_120_108,        /*             120     * 108     Double       */
  169.      LX400_120_72,            /*             120     *  72     Double, fast */
  170.      LX400_240_216,        /*             240     * 216     Quad         */
  171.      LX400_40_72,            /*              40     *  72     CRT graphics */
  172.      LX400_80_72,            /*              80     *  72     Plotter      */
  173.      LX400_90_72,            /*              90     *  72     CRT II            */
  174. };
  175.  
  176. void            far _Cdecl p_arc(int x, int y, int stangle, int endangle, int radius);
  177. void            far _Cdecl p_circle(int x, int y, int radius);
  178. void            far _Cdecl p_drawpoly(int numpoints, int far *polypoints);
  179. void            far _Cdecl p_ellipse(int x, int y, int stangle, int endangle, int xradius, int yradius);
  180. void            far _Cdecl p_fillellipse( int x, int y, int xradius, int yradius );
  181. void            far _Cdecl p_fillpoly(int numpoints, int far *polypoints);
  182. void            far _Cdecl p_floodfill(int x, int y, int border);
  183. void            far _Cdecl p_getresolution(int far *xres, int far *yres);
  184. void            far _Cdecl p_getaspectratio(int far *xasp, int far *yasp);
  185. void            far _Cdecl p_setaspectratio(int xasp, int yasp);
  186. int            far _Cdecl p_getmaxx(void);
  187. int            far _Cdecl p_getmaxy(void);
  188. int            far _Cdecl p_getx(void);
  189. int            far _Cdecl p_gety(void);
  190. void            far _Cdecl p_line(int x1, int y1, int x2, int y2);
  191. void            far _Cdecl p_linerel(int dx, int dy);
  192. void            far _Cdecl p_lineto(int x, int y);
  193. void            far _Cdecl p_moverel(int dx, int dy);
  194. void            far _Cdecl p_moveto(int x, int y);
  195. void            far _Cdecl p_putpixel(int x, int y, int colour);
  196. void            far _Cdecl _p_putpixel_screen(int x, int y, int colour);
  197. void            far _Cdecl p_rectangle(int left, int top, int right, int bottom);
  198. void            far _Cdecl p_closegraph(void);
  199. int            far _Cdecl p_getmaxcolor(void);
  200. void            far _Cdecl p_setlinestyle(int linestyle, unsigned upattern, int thickness);
  201. void            far _Cdecl p_outtext(char far *textstring);
  202. void            far _Cdecl p_outtextxy(int x, int y, char far *textstring);
  203. void            far _Cdecl p_cleardevice(void);
  204. void            far _Cdecl p_setwritemode(int mode);
  205. void            far _Cdecl p_print(int out_dev);
  206. void            far _Cdecl p_view(void);
  207. void            far _Cdecl p_graphdefaults(void);
  208. int            far _Cdecl p_graphresult(void);
  209. unsigned     far _Cdecl p_getpixel(int x, int y);
  210. void            far _Cdecl p_setcolor(int color);
  211. int            far _Cdecl p_getcolor(void);
  212. void            far _Cdecl p_bar3d(int left, int top, int right, int bottom, int depth, int topflag);
  213. void            far _Cdecl p_bar(int left, int top, int right, int bottom);
  214. void            far _Cdecl p_settextstyle(int font, int direction, int charsize);
  215. void            far _Cdecl p_settextjustify(int horiz, int vert);
  216. void            far _Cdecl p_gettextsettings(struct textsettingstype far *texttypeinfo);
  217. void            far _Cdecl p_setusercharsize(int multx, int divx, int multy, int divy);
  218. int             far _Cdecl p_textwidth(char far *string);
  219. int             far _Cdecl p_textheight(char far *string);
  220. void            far _Cdecl p_getlinesettings(struct linesettingstype far *linetypeinfo);
  221. char far*    far _Cdecl p_getdrivername(void);
  222. void            far _Cdecl p_getfillpattern(char far *pattern);
  223. void            far _Cdecl p_getfillsettings(struct fillsettingstype far *fillinfo);
  224. void            far _Cdecl p_setfillpattern(char far *upattern, int colour);
  225. void            far _Cdecl p_setfillstyle(int pattern, int colour);
  226. void            far _Cdecl p_getimage(int left, int top, int right, int bottom, void far *bitmap);
  227. unsigned        far _Cdecl p_imagesize(int left, int top, int right, int bottom);
  228. void            far _Cdecl p_putimage(int left, int top, void far *bitmap, int op);
  229. void            far _Cdecl p_pieslice(int x, int y, int stangle, int endangle, int radius);
  230. void            far _Cdecl p_sector( int X, int Y, int StAngle, int EndAngle, int XRadius, int YRadius);
  231. int            far _Cdecl p_registerbgifont(void (*font)(void));
  232. int           far _Cdecl p_registerfarbgifont(void far *font);
  233. void            far _Cdecl p_clearviewport(void);
  234. int           far _Cdecl p_getgraphmode(void);
  235. int           far _Cdecl p_getmaxmode(void);
  236. char far*    far _Cdecl p_getmodename(int mode_number);
  237. void           far _Cdecl p_getmoderange(int graphdriver, int far *lomode, int far *himode);
  238. void           far _Cdecl p_initgraph(int  far *graphdriver, int  far *graphmode, char far *pathtodriver);
  239. void           far _Cdecl p_setgraphmode(int mode);
  240. void          far _Cdecl p_setviewport(int left, int top, int right, int bottom, int clip);
  241. int            far _Cdecl p_registerbgidriver(void (*driver)(void));
  242. int            far _Cdecl p_registerfarbgidriver(void far *driver);
  243. void           far _Cdecl p_getarccoords(struct arccoordstype far *arccoords);
  244. void           far _Cdecl _p_graphfreemem(void far *ptr, unsigned long size);
  245. void far *     far _Cdecl _p_graphgetmem(unsigned long size);
  246. void            far _Cdecl p_dump(void);
  247.  
  248. #endif
  249.